timeline: Add _gtk_timeline_get_elapsed_time()
authorCarlos Garcia Campos <cgarcia@igalia.com>
Wed, 9 Feb 2011 07:53:03 +0000 (08:53 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 23 Feb 2012 22:49:33 +0000 (17:49 -0500)
To get the time in milliseconds since the last frame

gtk/gtktimeline.c
gtk/gtktimeline.h

index 5744e4bfff28feaed5add5ba6fce18642e193308..66a8c08ac7fd176674915307913c70ce1fd50449 100644 (file)
@@ -35,6 +35,7 @@ struct GtkTimelinePriv
   guint source_id;
 
   GTimer *timer;
+  gdouble elapsed_time;
 
   gdouble progress;
   gdouble last_progress;
@@ -309,19 +310,18 @@ gtk_timeline_run_frame (GtkTimeline *timeline)
 {
   GtkTimelinePriv *priv;
   gdouble delta_progress, progress;
-  guint elapsed_time;
 
   /* the user may unref us during the signals, so save ourselves */
   g_object_ref (timeline);
 
   priv = timeline->priv;
 
-  elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000);
+  priv->elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000);
   g_timer_start (priv->timer);
 
   if (priv->animations_enabled)
     {
-      delta_progress = (gdouble) elapsed_time / priv->duration;
+      delta_progress = (gdouble) priv->elapsed_time / priv->duration;
       progress = priv->last_progress;
 
       if (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD)
@@ -515,6 +515,25 @@ _gtk_timeline_is_running (GtkTimeline *timeline)
   return (priv->source_id != 0);
 }
 
+/**
+ * gtk_timeline_get_elapsed_time:
+ * @timeline: A #GtkTimeline
+ *
+ * Returns the elapsed time since the last GtkTimeline::frame signal
+ *
+ * Return Value: elapsed time in milliseconds since the last frame
+ **/
+guint
+_gtk_timeline_get_elapsed_time (GtkTimeline *timeline)
+{
+  GtkTimelinePriv *priv;
+
+  g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0);
+
+  priv = timeline->priv;
+  return priv->elapsed_time;
+}
+
 /**
  * gtk_timeline_get_fps:
  * @timeline: A #GtkTimeline
index 0b0aee16d0c6003ba12f1e4ca63fb591365ebd95..90d5725377f1ea1ff102a887805f3795b33ee868 100644 (file)
@@ -84,6 +84,7 @@ void                    _gtk_timeline_pause             (GtkTimeline
 void                    _gtk_timeline_rewind            (GtkTimeline             *timeline);
 
 gboolean                _gtk_timeline_is_running        (GtkTimeline             *timeline);
+guint                   _gtk_timeline_get_elapsed_time  (GtkTimeline             *timeline);
 
 guint                   _gtk_timeline_get_fps           (GtkTimeline             *timeline);
 void                    _gtk_timeline_set_fps           (GtkTimeline             *timeline,